﻿<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="http://www.dalet.it/dtd/xxe_edit.css"?>
<!DOCTYPE xsl:stylesheet [
  <!ENTITY stili SYSTEM "daletbookstyle.css" >
  <!ENTITY popImage SYSTEM "popImage.js" >
]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:html="http://www.w3.org/1999/XHTML" version="1.1">
<!-- use this file online : 
  http://dbxsl-frabad.googlecode.com/svn/trunk/htmlhelp/daletbook/DaletBookToHTML.xsl
-->

<!-- ================================================================ -->
<!-- importazione variabili -->
<!-- ================================================================ -->
  <xsl:import href="../../common/daletbook/daletbook-lib.xsl"/>
  
<!-- ================================================================ -->
  <!-- tipo output -->
<!-- ================================================================ -->
  <xsl:output doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" encoding="ISO-8859-1" indent="no" method="xml"/>
              
<!-- ================================================================ -->
<!-- Parametri -->
<!-- ================================================================ -->

<!-- FIXME : parametro di numerazione delle sezioni -->
<!-- FIXME : parametro numerazione delle figure -->
  <xsl:param name="stili">&stili;</xsl:param>
  <xsl:param name="stili.nome">stili.css</xsl:param>
  <xsl:param name="stili.interni">1</xsl:param>

<!-- ================================================================ -->
<!-- Modelli mastro -->
<!-- ================================================================ -->
  
  <xsl:template name="html_head">
    <!-- Testa dei file HTML-->
    <xsl:element name="head">
      <xsl:element name="title">
        <xsl:value-of select="concat('Dalet',' - ',/child::daletbook/attribute::company,' ',/child::daletbook/attribute::product)"/>
      </xsl:element>
      <xsl:choose>
        <xsl:when test="$stili.interni != '' and $stili.interni != '0'">
          <xsl:element name="style">
            <xsl:attribute name="type">text/css</xsl:attribute>
            <xsl:value-of select="normalize-space($stili)" />
          </xsl:element>
        </xsl:when>
        <xsl:otherwise>
          <xsl:element name="link">
            <xsl:attribute name="rel">stylesheet</xsl:attribute>
            <xsl:attribute name="type">text/css</xsl:attribute>
            <xsl:attribute name="href">
              <xsl:value-of select="$stili.nome" />
            </xsl:attribute>
          </xsl:element>
        </xsl:otherwise>
      </xsl:choose>
	<xsl:element name="script">
        <xsl:attribute name="language">javascript</xsl:attribute>
		<xsl:attribute name="type">text/javascript</xsl:attribute>
		<xsl:text disable-output-escaping="yes">&popImage;</xsl:text>
	</xsl:element>
      <xsl:comment>
        <xsl:value-of select="$avviso"/>
      </xsl:comment>
    </xsl:element>
  </xsl:template>
  
  <xsl:template name="documento">
  <!-- Questo èl modello di creazione di file HTML.
        Un file HTML sara creato per ogni sezione
        (nel senso più generale) del manuale.
    -->
	<xsl:param name="identificato" />
    <xsl:document doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" encoding="ISO-8859-1" href="{$identificato}.htm" indent="no" method="xml">
      <xsl:element name="html">
        <xsl:call-template name="html_head"/>
        <xsl:element name="body">
          <!--
            La pagina web e' composta da due blocchi macro:
                 _____________
                |   |         |
                |(1)|   (2)   |
                |   |         |
                |   |         |
                |___|_________|
                
                (1) - menu,
                (2) - contenuto
            
            "menu" contiene le voci dei capitoli 
            e delle sezioni di livello 1.
            
            "contenuto" e' composto da due blocchi:
                 _____________
                |   |  (2.1)  |
                |   |_________|
                |   |         |
                |   |  (2.2)  |
                |___|_________|
                
                (2.1) - testata,
                (2.2) - corpo
            
            "testata" contiene i logo del manuale
            e il titolo del capitolo corrente.
            
            "corpo" contiene tutto il contenuto testo/immagini
            preceduto in modo dinamico di:
                - un'intestazione di sezione corrente
                  se non ci troviamo nel sommario di capitolo,
                - un sommario dinamico delle sezioni
                  di livello superiore al livello corrente.
            
            Il nome di ogni bloccho e' usato anche per
            definire gli ID (#nome) del foglio CSS.
        -->

            <!-- Menu -->
                <xsl:element name="div">
                    <xsl:attribute name="id">menu</xsl:attribute>
                    <xsl:call-template name="menu_testata"/>
                    <xsl:call-template name="navigatore"/>
                </xsl:element>
            
            <!-- Contenuto -->
                <xsl:element name="div">
                    <xsl:attribute name="id">contenuto</xsl:attribute>
                    <xsl:call-template name="contenuto_testata"/>
                    <xsl:call-template name="corpo"/>
                </xsl:element>

        </xsl:element>
      </xsl:element>
      <!--
                chiusura del file HTML corrente
            -->
    </xsl:document>
  </xsl:template>


  <xsl:template name="fileCSS">
    <!-- crea un file css se c'è bisogno -->
    <xsl:if test="$stili.interni = '' or $stili.interni = '0'">
      <xsl:document href="{$stili.nome}" indent="no" method="text">
        <xsl:value-of select="normalize-space($stili)" />
      </xsl:document>
    </xsl:if>
  </xsl:template>

  <xsl:template name="menu_testata">
    <!-- Testata del menu -->
    <xsl:element name="div">
      <xsl:attribute name="class">testata</xsl:attribute>
      <xsl:element name="table">
        <xsl:element name="col"/>
        <xsl:element name="col">
          <xsl:attribute name="width">
            <xsl:text>100%</xsl:text>
          </xsl:attribute>
        </xsl:element>
        <xsl:element name="col"/>
        <xsl:element name="tbody">
          <xsl:element name="tr">
            <xsl:element name="td">
              <!-- sagoma vettoriale
              <xsl:call-template name="oggettoflash">
                <xsl:with-param
                name="file">pic/logo-simbolo_sagoma.swf</xsl:with-param>
                <xsl:with-param name="larghezza">80</xsl:with-param>
                <xsl:with-param name="altezza">40</xsl:with-param>
                <xsl:with-param
                name="trasparenza">transparent</xsl:with-param>
              </xsl:call-template>
              -->
              <!-- sagoma bitmap
              <xsl:element name="img">
                  <xsl:attribute name="src">pic/logo-simbolo_sagoma.png</xsl:attribute>
                  <xsl:attribute name="src">pic/logo-simbolo_sagoma.png</xsl:attribute>
              </xsl:element>
              -->
            </xsl:element>
            <xsl:element name="td">
                <xsl:value-of select="/child::daletbook/attribute::product"/>
            </xsl:element>
            <xsl:element name="td">
                <xsl:comment>empty</xsl:comment>
            </xsl:element>
          </xsl:element>
        </xsl:element>
      </xsl:element>
    </xsl:element>
  </xsl:template>
  
  <xsl:template name="contenuto_testata">
    <!-- Testata del contenuto -->
    <xsl:element name="div">
      <xsl:attribute name="class">testata</xsl:attribute>
      <xsl:element name="table">
        <xsl:element name="col"/>
        <xsl:element name="col">
          <xsl:attribute name="width">
            <xsl:text>100%</xsl:text>
          </xsl:attribute>
        </xsl:element>
        <xsl:element name="col"/>
        <xsl:element name="tbody">
          <xsl:element name="tr">
            <xsl:element name="td">
              <xsl:call-template name="oggettoflash">
                <xsl:with-param name="file">pic/logo-simbolo_mano.swf</xsl:with-param>
                <xsl:with-param name="larghezza">80</xsl:with-param>
                <xsl:with-param name="altezza">40</xsl:with-param>
                <xsl:with-param name="trasparenza">transparent</xsl:with-param>
              </xsl:call-template>
            </xsl:element>
            <xsl:element name="td">
              <xsl:attribute name="class">centro</xsl:attribute>
              <!-- selezione del testo di testata -->
              <xsl:choose>
                <xsl:when test="self::preface">
                  <xsl:value-of select="$prefazione"/>
                </xsl:when>
                <xsl:when test="ancestor-or-self::chapter">
                  <xsl:element name="a">
                    <xsl:attribute name="href">
                      <xsl:call-template name="posizione_chapter"/>
                      <xsl:text>.htm</xsl:text>
                    </xsl:attribute>
                    <xsl:value-of select="$capitolo"/>
                    <xsl:number count="chapter" format=" 1 :  "/>
                    <xsl:value-of select="ancestor-or-self::chapter/child::title"/>
                  </xsl:element>
                </xsl:when>
              </xsl:choose>
            </xsl:element>
            <xsl:element name="td">
              <xsl:call-template name="oggettoflash">
                <xsl:with-param name="file">pic/logo-simbolo_landini.swf</xsl:with-param>
                <xsl:with-param name="larghezza">40</xsl:with-param>
                <xsl:with-param name="altezza">40</xsl:with-param>
                <xsl:with-param name="trasparenza">transparent</xsl:with-param>
              </xsl:call-template>
            </xsl:element>
          </xsl:element>
        </xsl:element>
      </xsl:element>
    </xsl:element>
  </xsl:template>
  <xsl:template name="navigatore">
    <!-- Navigatore del documento -->
    <xsl:element name="div">
      <xsl:attribute name="id">navigatore</xsl:attribute>
      
      <xsl:element name="div">
        <!-- navigazione a livello inferiore-->
        <xsl:attribute name="class">chapter</xsl:attribute>
        <xsl:apply-templates select="//preface | //chapter" mode="sommario"/>
      </xsl:element>
      
    </xsl:element>
  </xsl:template>
  <xsl:template name="corpo">
    <!-- Corpo del documento -->
    <xsl:element name="div">
      <xsl:attribute name="id">corpo</xsl:attribute>
      <!--
        verifica se si trova
        sotto una sezione di livello 1
    -->
      <xsl:if test="boolean(ancestor-or-self::sect1)">
        <!--
        in quel caso, mostra il titolo
        della sezione di livello 1
    -->
        <xsl:apply-templates mode="intestazione" select="ancestor-or-self::sect1/child::title"/>
      </xsl:if>
      <!-- crea il contenuto -->
      <xsl:apply-templates/>
      <!--
        verifica la presenza
        di sezioni di livello inferiore...
    -->
      <xsl:if test="boolean(child::sect1 or child::sect2 or child::sect3 or child::sect4)">
        <!--
            ...se ce ne sono, crea un indice dinamico
            delle sezioni di livello inferiore
        -->
        <xsl:element name="div">
          <xsl:attribute name="class">sommario</xsl:attribute>
          <xsl:element name="div">
            <xsl:attribute name="class">titolo</xsl:attribute>
            <xsl:value-of select="$sommario"/>
          </xsl:element>
          <xsl:apply-templates mode="sommario" select="node()[not(self::title)]"/>
        </xsl:element>
      </xsl:if>
      <!--
        chiusura della sezione corrente
    -->
    </xsl:element>
  </xsl:template>
  


<!-- ================================================================ -->
<!-- Modelli di sommari -->
<!-- ================================================================ -->

  <!-- Sommario di libro -->
  <xsl:template match="preface" mode="sommario">
    <xsl:element name="a">
      <xsl:attribute name="class">voce</xsl:attribute>
      <xsl:attribute name="href">
        <xsl:call-template name="posizione_preface"/>
        <xsl:text>.htm</xsl:text>
      </xsl:attribute>
      <xsl:value-of select="$prefazione"/>
    </xsl:element>
  </xsl:template>
  <xsl:template match="chapter" mode="sommario">
  <!-- Sommario di capitolo -->
    <xsl:element name="a">
      <xsl:attribute name="class">voce</xsl:attribute>
      <xsl:attribute name="href">
        <xsl:call-template name="posizione_sect1"/>
        <xsl:text>.htm</xsl:text>
      </xsl:attribute>
      <!--xsl:element name="span">
        <xsl:attribute name="class">label</xsl:attribute>
        <xsl:number format="1 " />
      </xsl:element-->
      <xsl:value-of select="title"/>
    
      <xsl:element name="div">
        <!-- navigazione a livello inferiore-->
        <xsl:attribute name="class">section</xsl:attribute>
        <xsl:apply-templates select="sect1" mode="sommario"/>
      </xsl:element>
        
    </xsl:element>
  </xsl:template>
  <xsl:template match="sect1" mode="sommario">
    <xsl:element name="a">
      <xsl:attribute name="class">voce</xsl:attribute>
      <xsl:attribute name="href">
        <xsl:call-template name="posizione_sect1"/>
        <xsl:text>.htm</xsl:text>
      </xsl:attribute>
      <xsl:value-of select="concat($sezione,' ')"/>
        <xsl:number format="1"/>
        <xsl:text> : </xsl:text>
      <xsl:value-of select="title"/>
    </xsl:element>
      <!-- navigazione a livello inferiore
      <xsl:element name="div">
        <xsl:attribute name="class">section</xsl:attribute>
        <xsl:apply-templates select="sect2" mode="sommario"/>
      </xsl:element>
      -->
  </xsl:template>
  <xsl:template match="sect2" mode="sommario">
    <xsl:element name="a">
      <xsl:attribute name="class">voce</xsl:attribute>
      <xsl:attribute name="href">
        <xsl:call-template name="posizione_sect2"/>
        <xsl:text>.htm</xsl:text>
      </xsl:attribute>
       <xsl:value-of select="concat($sezione,' ')"/>
        <xsl:number count="sect1" format="1."/>
        <xsl:number format="1"/>
        <xsl:text> : </xsl:text>
      <xsl:value-of select="title"/>
    </xsl:element>
  </xsl:template>
  <xsl:template match="sect3" mode="sommario">
  <!-- Sommario di sezione di livello 2 -->
    <xsl:element name="a">
      <xsl:attribute name="class">voce</xsl:attribute>
      <xsl:attribute name="href">
        <xsl:call-template name="posizione_sect3"/>
        <xsl:text>.htm</xsl:text>
      </xsl:attribute>
      <xsl:value-of select="concat($sezione,' ')"/>
        <xsl:number count="sect1" format="1."/>
        <xsl:number count="sect2" format="1."/>
        <xsl:number format="1"/>
        <xsl:text> : </xsl:text>
      <xsl:value-of select="title"/>
    </xsl:element>
  </xsl:template>
  <xsl:template match="sect4" mode="sommario">
  <!-- Sommario di sezione di livello 3 -->
    <xsl:element name="a">
      <xsl:attribute name="class">voce</xsl:attribute>
      <xsl:attribute name="href">
        <xsl:call-template name="posizione_sect4"/>
        <xsl:text>.htm</xsl:text>
      </xsl:attribute>
      <xsl:value-of select="concat($sezione,' ')"/>
        <xsl:number count="sect1" format="1."/>
        <xsl:number count="sect2" format="1."/>
        <xsl:number count="sect3" format="1."/>
        <xsl:number format="1"/>
        <xsl:text> : </xsl:text>
      <xsl:value-of select="title"/>
    </xsl:element>
  </xsl:template>
  
  <!-- Sommario di sezione di livello 4
  <xsl:template match="section" mode="sommario">
    <xsl:element name="a">
      <xsl:attribute name="class">voce</xsl:attribute>
      <xsl:attribute name="href">
        <xsl:call-template name="posizione_section" />
        <xsl:text>.htm</xsl:text>
      </xsl:attribute>
      <xsl:value-of select="concat($sezione,' ')" />
        <xsl:number count="sect1" format="1." />
        <xsl:number count="sect2" format="1." />
        <xsl:number count="sect3" format="1." />
        <xsl:number count="sect4" format="1." />
        <xsl:number format="1" />
      <xsl:text> : </xsl:text>
      <xsl:value-of select="title" />
    </xsl:element>
  </xsl:template>
  -->
  


<!-- ================================================================ -->
<!-- modelli di sezione -->
<!-- ================================================================ -->

  <xsl:template match="/">
    <xsl:apply-templates/>
  </xsl:template>
  <xsl:template match="daletbook">
    <xsl:apply-templates select="node()[not(self::title)]"/>
    <xsl:call-template name="fileCSS" />
  </xsl:template>
  <xsl:template match="preface">
    <xsl:call-template name="documento">
      <xsl:with-param name="identificato">
        <xsl:call-template name="posizione_preface"/>
      </xsl:with-param>
    </xsl:call-template>
  </xsl:template>
  <xsl:template match="chapter">
    <xsl:call-template name="documento">
      <xsl:with-param name="identificato">
        <xsl:call-template name="posizione_chapter"/>
      </xsl:with-param>
    </xsl:call-template>
  </xsl:template>
  <xsl:template match="chapter/title">
    <!--
    nessun testo di uscita
    per questo modello
    in situazione normale
    -->
  </xsl:template>
  <xsl:template match="sect1">
    <xsl:call-template name="documento">
      <xsl:with-param name="identificato">
        <xsl:call-template name="posizione_sect1"/>
      </xsl:with-param>
    </xsl:call-template>
  </xsl:template>
  <xsl:template match="sect1/title">
    <!--
    nessun testo di uscita
    per questo modello
    in situazione normale
    -->
  </xsl:template>
  <xsl:template match="sect1/title" mode="intestazione">
    <xsl:element name="h1">
      <xsl:element name="a">
        <xsl:attribute name="href">
          <xsl:call-template name="posizione_sect1"/>
          <xsl:text>.htm</xsl:text>
        </xsl:attribute>
        <xsl:element name="span">
          <xsl:attribute name="class">label</xsl:attribute>
          <xsl:value-of select="$sezione"/>
          <xsl:number count="sect1" format=" 1 :"/>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:element>
  </xsl:template>
  <xsl:template match="sect2">
    <xsl:call-template name="documento">
      <xsl:with-param name="identificato">
        <xsl:call-template name="posizione_sect2"/>
      </xsl:with-param>
    </xsl:call-template>
  </xsl:template>
  <xsl:template match="sect2/title">
    <xsl:element name="h3">
      <xsl:element name="a">
        <xsl:attribute name="href">
          <xsl:call-template name="posizione_sect1"/>
          <xsl:text>.htm</xsl:text>
        </xsl:attribute>
        <xsl:element name="span">
          <xsl:attribute name="class">label</xsl:attribute>
          <xsl:number count="sect1" format="1."/>
          <xsl:number count="sect2" format="1"/>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:element>
  </xsl:template>
  <xsl:template match="sect3">
    <xsl:call-template name="documento">
      <xsl:with-param name="identificato">
        <xsl:call-template name="posizione_sect3"/>
      </xsl:with-param>
    </xsl:call-template>
  </xsl:template>
  <xsl:template match="sect3/title">
    <xsl:element name="h3">
      <xsl:element name="a">
        <xsl:attribute name="href">
          <xsl:call-template name="posizione_sect2"/>
          <xsl:text>.htm</xsl:text>
        </xsl:attribute>
        <xsl:element name="span">
          <xsl:attribute name="class">label</xsl:attribute>
          <xsl:number count="sect1" format="1."/>
          <xsl:number count="sect2" format="1."/>
          <xsl:number count="sect3" format="1"/>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:element>
  </xsl:template>
  <xsl:template match="sect4">
    <xsl:call-template name="documento">
      <xsl:with-param name="identificato">
        <xsl:call-template name="posizione_sect4"/>
      </xsl:with-param>
    </xsl:call-template>
  </xsl:template>
  <xsl:template match="sect4/title">
    <xsl:element name="h3">
      <xsl:element name="a">
        <xsl:attribute name="href">
          <xsl:call-template name="posizione_sect3"/>
          <xsl:text>.htm</xsl:text>
        </xsl:attribute>
        <xsl:element name="span">
          <xsl:attribute name="class">label</xsl:attribute>
          <xsl:number count="sect1" format="1."/>
          <xsl:number count="sect2" format="1."/>
          <xsl:number count="sect3" format="1."/>
          <xsl:number count="sect4" format="1"/>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:element>
  </xsl:template>
  <xsl:template match="section">
<!--
    <xsl:call-template name="documento">
      <xsl:with-param name="identificato">
        <xsl:call-template name="posizione_section" />
      </xsl:with-param>
    </xsl:call-template>
-->
    <xsl:apply-templates/>
  </xsl:template>
  <xsl:template match="section/title">
    <xsl:element name="h3">
      <xsl:element name="a">
        <xsl:attribute name="id">
          <xsl:call-template name="posizione_sect4"/>
          <xsl:text>.htm</xsl:text>
        </xsl:attribute>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:element>
  </xsl:template>
  

<!-- ================================================================ -->
<!-- Numerazione delle sezioni -->
<!-- ================================================================ -->

  <xsl:template name="posizione_preface">
    <xsl:text>index</xsl:text>
  </xsl:template>
  <xsl:template name="posizione_chapter">
    <xsl:number count="chapter" format="01"/>
  </xsl:template>
  <xsl:template name="posizione_sect1">
    <xsl:number count="chapter" format="01"/>
    <xsl:number count="sect1" format="01"/>
  </xsl:template>
  <xsl:template name="posizione_sect2">
    <xsl:number count="chapter" format="01"/>
    <xsl:number count="sect1" format="01"/>
    <xsl:number count="sect2" format="01"/>
  </xsl:template>
  <xsl:template name="posizione_sect3">
    <xsl:number count="chapter" format="01"/>
    <xsl:number count="sect1" format="01"/>
    <xsl:number count="sect2" format="01"/>
    <xsl:number count="sect3" format="01"/>
  </xsl:template>
  <xsl:template name="posizione_sect4">
    <xsl:number count="chapter" format="01"/>
    <xsl:number count="sect1" format="01"/>
    <xsl:number count="sect2" format="01"/>
    <xsl:number count="sect3" format="01"/>
    <xsl:number count="sect4" format="01"/>
  </xsl:template>
  <xsl:template name="posizione_section">
    <xsl:number count="chapter" format="01"/>
    <xsl:number count="sect1" format="01"/>
    <xsl:number count="sect2" format="01"/>
    <xsl:number count="sect3" format="01"/>
    <xsl:number count="sect4" format="01"/>
    <xsl:number count="section" format="01"/>
  </xsl:template>
  


<!-- ================================================================ -->
  <!-- modelli di blocchi tabulari -->
<!-- ================================================================ -->

  <xsl:template match="table">
    <xsl:element name="table">
      <xsl:attribute name="class">tabella</xsl:attribute>
      <xsl:if test="boolean(child::title)">
        <xsl:element name="caption">
          <xsl:attribute name="class">titolo</xsl:attribute>
          <xsl:value-of select="child::title"/>
        </xsl:element>
      </xsl:if>
      <xsl:apply-templates select="col"/>
      <xsl:element name="tbody">
        <xsl:apply-templates select="row"/>
      </xsl:element>
    </xsl:element>
  </xsl:template>
  <xsl:template match="col">
    <xsl:element name="col">
      <xsl:attribute name="width">
        <xsl:choose>
          <xsl:when test="attribute::unit[.='millimeter']">
            <xsl:value-of select="attribute::width * 7"/>
          </xsl:when>
          <xsl:when test="attribute::unit[.='percent']">
            <xsl:value-of select="concat(attribute::width,'%')"/>
          </xsl:when>
          <xsl:when test="attribute::unit[.='pixel']">
            <xsl:value-of select="concat(attribute::width,'px')"/>
          </xsl:when>
        </xsl:choose>
      </xsl:attribute>
    </xsl:element>
  </xsl:template>
  <xsl:template match="row">
    <xsl:element name="tr">
      <xsl:apply-templates select="cell"/>
    </xsl:element>
  </xsl:template>
  <xsl:template match="cell">
    <xsl:element name="td">
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>
  <xsl:template match="figdesc">
    <xsl:element name="table">
      <xsl:attribute name="class">figdesc</xsl:attribute>
      <xsl:for-each select="descitem">
        <xsl:element name="tr">
          <xsl:apply-templates/>
        </xsl:element>
      </xsl:for-each>
    </xsl:element>
  </xsl:template>
  <xsl:template match="descitem/label">
    <xsl:element name="td">
      <xsl:attribute name="class">label</xsl:attribute>
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>
  <xsl:template match="label/area"/>
  <xsl:template match="descitem/desc">
    <xsl:element name="td">
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>
  


<!-- ================================================================ -->
<!-- modelli blocchi di testo -->
<!-- ================================================================ -->

  <xsl:template match="procedure">
    <xsl:choose>
      <xsl:when test="attribute::num[.='no']">
        <xsl:element name="ul">
          <xsl:attribute name="class">procedura</xsl:attribute>
          <xsl:apply-templates/>
        </xsl:element>
      </xsl:when>
      <xsl:otherwise>
        <xsl:element name="ol">
          <xsl:attribute name="class">procedura</xsl:attribute>
          <xsl:apply-templates/>
        </xsl:element>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  <xsl:template match="list">
    <xsl:choose>
      <xsl:when test="attribute::num[.='yes']">
        <xsl:element name="ol">
          <xsl:apply-templates/>
        </xsl:element>
      </xsl:when>
      <xsl:otherwise>
        <xsl:element name="ul">
          <xsl:apply-templates/>
        </xsl:element>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  <xsl:template match="sublist">
    <xsl:choose>
      <xsl:when test="attribute::num[.='yes']">
        <xsl:element name="ol">
          <xsl:apply-templates/>
        </xsl:element>
      </xsl:when>
      <xsl:otherwise>
        <xsl:element name="ul">
          <xsl:apply-templates/>
        </xsl:element>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  <xsl:template match="para">
    <xsl:element name="p">
      <xsl:apply-templates/>
      <!--xsl:call-template name="apply-locale"/-->
    </xsl:element>
  </xsl:template>
  <xsl:template match="item">
    <xsl:element name="li">
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>
  <xsl:template match="item/para">
    <xsl:if test="preceding-sibling::para">
      <br/>
    </xsl:if>
    <xsl:apply-templates/>
  </xsl:template>
  <xsl:template match="cell/para">
    <xsl:if test="preceding-sibling::para">
      <br/>
    </xsl:if>
    <xsl:apply-templates/>
  </xsl:template>


<!-- ================================================================ -->
 <!-- evidenziazioni -->
<!-- ================================================================ -->

  <xsl:template match="highlight">
    <xsl:element name="strong">
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>
  <xsl:template match="warning">
    <xsl:element name="div">
      <xsl:attribute name="class">evidenziazione attenzione</xsl:attribute>
      <xsl:element name="div">
        <xsl:attribute name="class">label</xsl:attribute>
        <xsl:value-of select="concat($attenzione,':')"/>
      </xsl:element>
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>
  <xsl:template match="note">
    <xsl:element name="div">
      <xsl:attribute name="class">evidenziazione nota</xsl:attribute>
      <xsl:element name="div">
        <xsl:attribute name="class">label</xsl:attribute>
        <xsl:value-of select="concat($nota,':')"/>
      </xsl:element>
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>
  <xsl:template match="example">
    <xsl:element name="p">
      <xsl:attribute name="class">esempio</xsl:attribute>
      <xsl:element name="strong">
        <xsl:value-of select="concat($esempio,':')"/>
      </xsl:element>
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>


<!-- ================================================================ -->
<!-- blocchi misti -->
<!-- ================================================================ -->

  <xsl:template match="catalog">
    <xsl:apply-templates/>
  </xsl:template>
  <xsl:template match="description">
    <xsl:element name="div">
      <xsl:attribute name="class">descrizione</xsl:attribute>
      <xsl:if test="parent::catalog/attribute::num[.='yes']">
        <xsl:element name="div">
          <xsl:attribute name="class">label</xsl:attribute>
          <xsl:number format="1."/>
        </xsl:element>
      </xsl:if>
      <xsl:element name="div">
        <xsl:attribute name="class">bloccotesto</xsl:attribute>
        <xsl:apply-templates select="node()[not(self::figure) and not(self::picture)]"/>
      </xsl:element>
      <xsl:apply-templates select="node()[self::figure or self::picture]"/>
    </xsl:element>
  </xsl:template>
  


<!-- ================================================================ -->
  <!-- grafici -->
<!-- ================================================================ -->

  <!-- importazione di un oggetto flash -->
  <xsl:template name="oggettoflash">
    <xsl:param name="file" />
    <xsl:param name="larghezza" />
    <xsl:param name="altezza" />
    <xsl:param name="trasparenza">transparent</xsl:param>
    
    <xsl:element name="object">
      <xsl:attribute name="type">application/x-shockwave-flash</xsl:attribute>
      <xsl:attribute name="data">
        <xsl:value-of select="$file"/>
      </xsl:attribute>
      <xsl:if test="$larghezza">
        <xsl:attribute name="width">
          <xsl:value-of select="$larghezza"/>
        </xsl:attribute>
      </xsl:if>
      <xsl:if test="$altezza">
        <xsl:attribute name="height">
          <xsl:value-of select="$altezza"/>
        </xsl:attribute>
      </xsl:if>
      <xsl:element name="param">
        <xsl:attribute name="name">wmode</xsl:attribute>
        <xsl:attribute name="value">
          <xsl:value-of select="$trasparenza"/>
        </xsl:attribute>
      </xsl:element>
      <xsl:element name="param">
        <xsl:attribute name="name">movie</xsl:attribute>
        <xsl:attribute name="value">
          <xsl:value-of select="$file"/>
        </xsl:attribute>
      </xsl:element>
    </xsl:element>
  </xsl:template>
  <!-- figura -->
  <xsl:template match="figure">
    <xsl:param name="tipofile">
		<!--tipofile permette di accedere un file grafico riconosciuto dal navigatore web -->
      <xsl:choose>
        <xsl:when test="@filetype = 'tif'">png</xsl:when>
        <xsl:when test="@filetype = 'eps'">png</xsl:when>
        <xsl:when test="@filetype = 'jpg'">jpg</xsl:when>
        <xsl:otherwise>png</xsl:otherwise>
      </xsl:choose>
    </xsl:param>
    <xsl:param name="nomefile"  select="concat($folder.images,'/',@figid,'.',$tipofile)"/>
    <xsl:param name="titolo">
        <xsl:value-of select="$fig"/>
        <xsl:call-template name="figcounter"/>
        <xsl:if test="boolean(child::title) and $style.graphics-have-titles != '0' ">
          <xsl:value-of select="concat(': ',child::title)"/>
        </xsl:if>
    </xsl:param>
    <xsl:element name="div">
      <xsl:attribute name="class">bloccografico</xsl:attribute>
      <xsl:attribute name="id">
        <xsl:value-of select="attribute::figid"/>
      </xsl:attribute>
	  <xsl:element name="img">
		<xsl:attribute name="src">
		  <xsl:value-of select="$nomefile"/>
		</xsl:attribute>
		<xsl:attribute name="onclick">
			<xsl:text>javascript:popImage(</xsl:text>
			<xsl:text disable-output-escaping="yes">'</xsl:text>
			<xsl:value-of select="$nomefile"/>
			<xsl:text disable-output-escaping="yes">',</xsl:text>
			<xsl:text disable-output-escaping="yes">'</xsl:text>
			<xsl:value-of select="$titolo"/>
			<xsl:text disable-output-escaping="yes">'</xsl:text>
			<xsl:text>)</xsl:text>
		</xsl:attribute>
		<xsl:attribute name="alt">
		  <xsl:value-of select="$titolo"/>
		</xsl:attribute>
	  </xsl:element>
      <xsl:element name="p">
        <xsl:attribute name="class">titolo</xsl:attribute>
		<xsl:value-of select="$titolo" />
      </xsl:element>
    </xsl:element>
  </xsl:template>
  <!-- immagine -->
  <xsl:template match="picture">
    <xsl:param name="tipofile">
      <xsl:choose>
        <xsl:when test="@filetype = 'tif'">png</xsl:when>
        <xsl:when test="@filetype = 'eps'">png</xsl:when>
        <xsl:when test="@filetype = 'jpg'">jpg</xsl:when>
        <xsl:otherwise>png</xsl:otherwise>
      </xsl:choose>
    </xsl:param>
    
    <xsl:param name="contenuto">
      <xsl:element name="img">
        <xsl:attribute name="src">
          <xsl:value-of select="concat($folder.images,'/',attribute::filename,'.',$tipofile)"/>
        </xsl:attribute>
        <xsl:attribute name="alt">
          <xsl:value-of select="attribute::filename"/>
        </xsl:attribute>
      </xsl:element>
    </xsl:param>
    <xsl:choose>
      <xsl:when test="parent::para | parent::label | parent::cell">
        <!-- situazioni di innestazione dentro testo -->
        <xsl:copy-of select="$contenuto"/>
      </xsl:when>
      <xsl:otherwise>
        <!-- situazioni dove c'è bisogno di mettere un blocco grafico-->
        <xsl:element name="div">
          <xsl:attribute name="class">bloccografico</xsl:attribute>
          <xsl:copy-of select="$contenuto"/>
        </xsl:element>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  

  <xsl:template match="picture[@filetype = 'swf']">
    <xsl:call-template name="oggettoflash">
      <xsl:with-param name="file" select="concat($folder.images,'/',@filename,'.',@filetype)"/>
    </xsl:call-template>
  </xsl:template>


<!-- ================================================================ -->
<!-- riferimenti -->
<!-- ================================================================ -->

<xsl:template name="figcounter">
<!-- FIXME : aggiungere inizio manuale della numerazione delle figure -->
    <xsl:number count="chapter" format="1."/>
    <xsl:number count="figure" from="chapter" level="any"/>
</xsl:template>

<xsl:template match="ref.fignumber">
  <!--FIXME : il legame non funziona se la figura è in un altro file -->
  <xsl:for-each select="id(attribute::ref)">
    <xsl:element name="a">
      <xsl:attribute name="href">
        <xsl:value-of select="concat('#',@figid)"/>
      </xsl:attribute>
      <xsl:call-template name="figcounter"/>
    </xsl:element>
  </xsl:for-each>
</xsl:template>

<xsl:template match="ref.figtitle">
  <!--FIXME : il legame non funziona se la figura è in un altro file -->
  <xsl:element name="a">
    <xsl:attribute name="href">
      <xsl:value-of select="concat('#',@figid)"/>
    </xsl:attribute>
    <xsl:value-of select="id(attribute::ref)/child::title"/>
  </xsl:element>
</xsl:template>

<xsl:template match="ref.bookdata">
    <xsl:element name="strong">
        <xsl:choose>
            <xsl:when test="attribute::ref[.='company']">
                <xsl:value-of select="/descendant-or-self::daletbook/attribute::company"/>
            </xsl:when>
            <xsl:when test="attribute::ref[.='product']">
                <xsl:value-of select="/descendant-or-self::daletbook/attribute::product"/>
            </xsl:when>
            <xsl:when test="attribute::ref[.='partnumber']">
                <xsl:value-of select="/descendant-or-self::daletbook/attribute::partnumber"/>
            </xsl:when>
            <xsl:when test="attribute::ref[.='horsepower']">
                <xsl:value-of select="/descendant-or-self::daletbook/attribute::horsepower"/>
            </xsl:when>
        </xsl:choose>
    </xsl:element>
</xsl:template>

</xsl:stylesheet>
